package com.itheima.dao;

import com.itheima.entity.Address;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

public interface AddressDao {

    /**
     通过uid分页查询某个用户的地址
     */
    List<Address> findByUid(@Param("uid") int uid, @Param("condition") Map<String,Object> condition,
                            @Param("begin") int begin, @Param("size") int size);

    /**
     * 通过uid查询某个用户收货地址总数
     * @param uid
     */
    int findCount(@Param("uid") int uid,@Param("condition") Map<String,Object> condition);

    /**
     保存地址
     */
    @Insert("INSERT INTO tab_address VALUES (NULL, #{uid},#{contact},#{address},#{telephone},#{isdefault})")
    int save(Address address);

    /**
     * 更新当前用户所有的默认地址为0，更新多条
     */
    @Update("UPDATE tab_address SET isdefault=0 WHERE uid=#{uid}")
    int updateAddressIsNotDefault(int uid);

    /**
     * 更新当前地址为默认1，更新1条
     */
    @Update("UPDATE tab_address SET isdefault=1 WHERE aid=#{aid}")
    int updateAddressIsDefault(int aid);

    /**
     * 更新地址信息: 只更新三项
     */
    @Update("update tab_address set contact=#{contact},address=#{address},telephone=#{telephone} where aid=#{aid}")
    int update(Address address);

    /**
     * 删除操作
     */
    @Delete("delete from tab_address where aid=#{aid}")
    int delete(Integer aid);
}
